package com.test.springboot.mybatis.service;


import com.test.springboot.mybatis.entity.PayRecord;

/**
* 
* @author cxb
* @date 2018年8月8日
*/
public interface PayRecordService {
    /**
     * 插入数据库 返回主键
     * @param record 要插入的数据
     * @return 主键
     */
    int save(PayRecord record);
    
    /**
     * 根据主键获取记录
     * @param id 主键
     * @return
     */
    PayRecord getById(int id);
    
    /**
     * 根据tablekey和付款那个人获取未完成支付的记录，返回最新的那一条。
     * @param tableKey
     * @param payer
     * @return
     */
    PayRecord getIncomplateByTableKeyAndPayer(String tableKey, String payer);
    

    
    /**
     * 根据tablekey和付款那个人获取未完成支付的记录，返回最新的那一条。
     * @param tableKey
     * @param payer
     * @return
     */
    PayRecord getIncomplateBillNoAndPayer(String tableKey, String payer);
    

    /**
     * 根据tablekey和付款那个人获取完成支付的记录，返回最新的那一条。
     * @param tableKey
     * @param payer
     * @return
     */
    PayRecord getComplateByTableKeyAndPayer(String tableKey, String payer);
    
    /**
     * 获取最后一条支付记录
     * @param tableKey
     * @param payer
     * @return
     */
    PayRecord getLastRecordByTableKeyAndPayer(String tableKey, String payer);
    
    /**
     * 根据tableKey和billNo查询
     * @param tableKey
     * @param billNo
     * @return
     */
    PayRecord getByTableKeyAndBillNo(String tableKey, String billNo);
    /**
     * 根据tableKey和billId查询
     * @param tableKey
     * @param billId
     * @return
     */
    PayRecord getByTableKeyAndBillId(String tableKey, String billId);
    
    /**
     * 根据billId查询
     * @param billId
     * @return
     */
    PayRecord getByBillId(String billId);
    
    /**
     * 根据id，删除
     * @param id
     * @return
     */
    int removeById(int id);
    
    /**
     * 修改
     * @param record
     * @return
     */
    int update(PayRecord record);

}
